Field of the Invention
The present invention relates to communication between apparatuses.
Description of the Related Art
In recent years, portable multi-function terminals (to be referred to as mobile computers hereinafter) incorporating a camera function have become widespread, and far surpass digital cameras and conventional personal computers (to be referred to as PCs hereinafter) in sales.
Such mobile computer is basically formed from three elements, that is, hardware as the computer itself, an operating system (to be referred to as an OS hereinafter) operating on the hardware, and an application operating on the OS. By using the application, the user can use a function such as a map, mail, or browsing of a Web site on the Internet.
As examples of the form of such application operating on the mobile computer, there are mainly two application forms, that is, a native application and Web application. The features of each application form will be explained below.
The native application is developed by using a development environment and development language which are prepared for each OS. For example, the C/C++ language is used on an OS provided by company A, the Java® language is used on an OS provided by company B, and a different development language is used on an OS provided by company C. In general, the native application is compiled in advance in each development environment, and transformed from a so-called high-level language understandable by a human into instruction sets such as an assembler directly executable by the CPU of the computer. Thus, the general native application has an advantage that it is possible to perform an operation at high speed since the CPU directly executes instructions.
On the other hand, the Web application indicates an application operating on a Web browser which is normally incorporated in an OS on each computer in recent years. The application is generally developed by using a language such as HTML5, CSS, or JavaScript® so that the Web browser can interpret the application. These languages are Web standard languages. Therefore, if a Web application is described using the Web standard language, it can operate in any environment where the Web browser operates.
For example, Japanese Patent Laid-Open No. 2011-233034 discloses a technique of executing printing by a Web application operating on a Web Browser.
As described above, a recent mobile computer holds a camera of a high resolution. Since the mobile computer is carried every day, and includes a memory capable of storing about several thousand photos, the user can easily enjoy shooting a photo at a very high frequency. An application of performing filter processing of changing the shot image into a monochrome/sepia-toned image or image processing of correcting the brightness, color balance, and the like of the photo has become very important and essential to the user. When creating an application capable of readily providing such image processing to the user without any stress in each of the above two application forms, this may have the following advantages and disadvantages.
The native application has an advantage that it is possible to execute processing at high speed, as described above. However, it is necessary to develop the application using each development language different for each OS. This may increase the development cost and development time, thereby making it impossible to quickly provide the application to the user. Also, it is necessary to compile the native application in advance. Therefore, for example, it may be difficult to change the UI (User Interface) design of the application at the time of an operation, or dynamically add a function, resulting in a lack of flexibility.
As for the Web application, the main body of the Web application described in HTML5, CSS, or JavaScript generally exists on a server outside the mobile computer. Since the Web application is dynamically downloaded from the server to the mobile computer via an Internet line when using it, it is possible to dynamically change the UI design or the like without compiling the application in advance.
However, when executing advanced complex processing, there are only two choices about whether to execute the Web application on the browser by JavaScript or on the server under the security restrictions of the browser. Conventionally, JavaScript is described as a script of character strings perceivable by a human, and can be executed by compiling the script, as needed, at the time of operating the script. Consequently, if complex processing is described by JavaScript, the operation may be slowed down.
On the other hand, if the complex processing is executed by the server, the time is required to upload data such as photos existing in the mobile computer to the server via the Internet line, and download the result of the processing by the server from the server. In some cases, this arrangement cannot implement immediate processing with little stress on the mobile application. In addition, processing by the server cannot be executed offline.
That is, at the zenith of the mobile computer which will come in the near future, it is desired to shorten the development period, and provide a versatile application form and development environment to the user. It is also desired to improve the convenience. For example, it is desired to perform communication with an external device while meeting the security restrictions on a Web application described in a script such as JavaScript.